A conventional computer system typically includes various different hardware subsystems, which constitute a particular hardware configuration. FIG. 1 is a block diagram of a conventional computer system 50 comprising a central processing unit (CPU) 52, a display 54, a hard disk drive 56, input/output (I/O) devices 58, a compact disk (CD) drive 60, and network devices 62.
A computer system is typically purchased with preloaded software, which can include an operating system, hardware drivers, software utilities, and commonly used application software, e.g., word processors and spreadsheets. The software is already loaded/installed on the computer system by the time it is delivered to a customer. The customer can be a large enterprise but is not limited to large enterprises.
The individual software programs that constitute the preloaded software are provided by various software suppliers. For example, the operating system, e.g., Windows NT™ or OS/2™, would be provided by one software supplier. The hardware drivers, e.g., for a CD drive, would be provided by another software supplier. The individual software programs are typically provided on diskettes, the web, or CDs. Preloading the software programs can be substantially cumbersome especially when the number of individual software programs is increased or when the number of computer systems to be preloaded is increased.
The software is typically installed and stored on the hard disk drive of a computer system. The term “image” is used to describe the software installed on a hard disk drive of a computer system. FIG. 2 is a block diagram of a conventional computer system 70 comprising a hard disk drive 72 with an image 74 of the installed software, which can be loaded onto hard drives 76-80 of other computer systems 82-86, respectively. Typically, a customer of the computer manufacturer first purchases the first computer system 70 and customizes and then loads the image 74 onto the customer's other computer systems 82-86.
Managing and loading one image onto another system is much more efficient than manually installing and loading the software programs individually onto the other system. Images are deployed by organizations such as an information technology (IT) shop of a customer. Some of these images can be created and deployed using software utilities/tools such as IBM's ImageUltra™, Microsoft's SysPrep™ or industry standard tools such as PowerQuest's DriveImage™ or Symantech's Ghost™. Many of these software tools are primarily used to create a backup image for reinstallation should any software files become corrupted.
Unfortunately, most of these images require a donor system and are monolithic; i.e., they only work on computer systems with the same hardware configurations. This is because an image is customized to a particular hardware configuration. This is problematic because new images need to be created for new computer systems that are introduced in the customer's environment, where the new computer systems have a different hardware configuration. This problem exists even if the hardware configuration is only slightly different, such as being a different model. As a result, a customer needs to maintain and manage an inventory of images for the different hardware configurations of different computer systems. As the number of hardware configurations increase, the number of images that the customer needs to maintain increases, thus further complicating image-inventory management.
However, new images must still be created for each hardware configuration because the conventional solutions do not modify the images themselves. Images must be built from scratch, which is time consuming and inefficient, especially where there are many computer systems with different hardware configurations. IBM's ImageUltra™ is designed to manage and maintain images.
Accordingly, what is needed is an improved method for providing an image of software installed on a computer system. The method should facilitate management of image inventory and should facilitate deployment of images to new computer systems with different hardware configurations, even when portions of an image are not available for a particular computer system. The method should be simple, cost effective and capable of being easily adapted to existing technology. The present invention addresses such needs.